package controlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import vista.VistaActualizar;
import modelo.Ingrediente;
import modelo.IngredienteDAO;

public class ControladorVistaActualizar implements ActionListener{
	
	private VistaActualizar ventanaActualizar;
	public ControladorVistaActualizar() {
		super();
		this.ventanaActualizar = new VistaActualizar();
		this.ventanaActualizar.addListener(this);
		this.ventanaActualizar.setVisible(true);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		String actionCommand = e.getActionCommand();
		if(actionCommand.equals("Procesar"))
		{
			RegistrarCompras();
		}
		else if (actionCommand.equals("Salir"))
		{
			ventanaActualizar.setVisible(false);
		}
		else if(actionCommand.equals(""))
		{
			BuscarIngre();
		}
	}
	public void BuscarIngre()
	{
		try
		{
			if(ventanaActualizar.getCodIngre().equals(""))
			{
				ventanaActualizar.MostrarMensaje("Deben ingresar el codigo");
			}
			else
			{
				IngredienteDAO ingredienteDAO = new IngredienteDAO();
				Ingrediente ingrediente = new Ingrediente();
				ingrediente = ingredienteDAO.ConsultarIngrediente(ventanaActualizar.getCodIngre());
				ventanaActualizar.setNombIngrediente(ingrediente.getNombIngrediente());
				ventanaActualizar.setDescripcion(ingrediente.getDescrip());
				ventanaActualizar.setStock(ingrediente.getStock());
			}
		}
		catch (Exception e)
		{
			ventanaActualizar.MostrarMensaje("El ingrediente indicado no se encuentra registrado");
			ventanaActualizar.Blanquear();
		}
	}
	public void RegistrarCompras()
	{
		try
		{
			if(ventanaActualizar.getCodIngre().equals("") || ventanaActualizar.getCantC() == 0 )
			{
				ventanaActualizar.MostrarMensaje("Deben ingresar todos los datos para registrar al Cliente");
			}
			else
			{
				IngredienteDAO ingreDAO = new IngredienteDAO();
				Ingrediente ingre = new Ingrediente(ventanaActualizar.getCodIngre(),ventanaActualizar.getNombIngrediente(), ventanaActualizar.getDescrip(), ventanaActualizar.getStock());
				ingreDAO.ActualizarStock(ingre, ventanaActualizar.getCantC());
				ventanaActualizar.MostrarMensaje("Stock de Ingrediente actualizado  exitosamente!");
				ventanaActualizar.Blanquear();
			}
		}
		catch (Exception e)
		{
			ventanaActualizar.MostrarMensaje("No se pudo agregar la Categoria");
			ventanaActualizar.Blanquear();
		}
		
	}
}